package `02-lambada`

/**
 * 函数的函数 == Java的回调
 */
fun login(name:String,pwd:String){
    //检查账号和密码
    checkLogin(name,pwd){
        //成功才会执行
        println("检查账号和密码成功，准备请求服务器")

        //请求服务器
        requestData(name,pwd){
            if(it)
                println(name+"登录成功")
            else
                println(name+"登录失败")
        }
    }
}

fun checkLogin(name:String,pwd:String,result:()->Unit){
    if(name.isEmpty() || pwd.isEmpty()){
        println("请输入账号或密码")
        return
    }
    result.invoke()
}

/**
 * 会请求接口，然后将结果返回，结果用于更新UI
 */
fun requestData(name:String,pwd:String,result:(Boolean)->Unit){
    if(name.equals("Lu") && pwd.equals("123456")){
        result.invoke(true)
    }else{
        result.invoke(false)
    }
}
fun main() {
    login("","123456") // 请输入账号或密码
    println()
    login("name","123456") //检查账号和密码成功，准备请求服务器 name登录失败
    println()
    login("Lu","123456") //检查账号和密码成功，准备请求服务器 Lu登录成功
}